//package com.atguigu.lease.web.admin.custom.converter;
//
//import com.atguigu.lease.model.enums.LeaseStatus;
//import org.springframework.core.convert.converter.Converter;
//
///**
// * @program: lease
// * @description: Java Lotus
// * @author: spring
// * @create: 2024-09-24
// */
//
///*
//但是我们有很多的枚举类型都需要考虑类型转换这个问题，按照上述思路，
//我们需要为每个枚举类型都定义一个Converter，并且每个Converter的转换逻辑都完全相同，
//针对这种情况，我们使用[`ConverterFactory`]
//(https://docs.spring.io/spring-framework/reference/core/validation/convert.html#core-convert-ConverterFactory-SPI)
//接口更为合适，这个接口可以将同一个转换逻辑应用到一个接口的所有实现类，
//因此我们可以定义一个`BaseEnum`接口，然后另所有的枚举类都实现该接口，
//然后就可以自定义`ConverterFactory`，集中编写各枚举类的转换逻辑了。
// */
//
///**
// * 根据设计模式我们可以知道，当我们需要一个方法进行转换多次的时候，而且这个方法是在原本的类库中是没有
// * 的时候，这时候我们不要去再去面向对象去编程，更加需要我们去面向接口编程，不再是在每个类中写出
// * 多个相同或者是类似的方法，而是需要我们去写一个类去合并这个方法，产生一个接口
// * 一次产生多次调用
// */
//public class StringToLeaseStatusConverter implements Converter<String, LeaseStatus> {
//    @Override
//    public LeaseStatus convert(String code) {
//
//        LeaseStatus[] values = LeaseStatus.values();
//        for (LeaseStatus itemType : values) {
//            if (itemType.getCode().equals(Integer.valueOf(code))){
//                return itemType;
//            }
//        }
//        throw new IllegalArgumentException("code"+code+"非法");
//    }
//}
